package com.share.wechat.page.help;

import java.util.List;

public class PageModel<E> {
    //结果集
    private List<E> list;
    //查询记录数
    private int totalRecords;
    //每页多少条数据
    private int size;
    //第几页
    private int page;

    public PageModel(int page, int size) {
        this.size = size;
        this.page = page;
    }

    /**
     * 总页数
     *
     * @return 总页数
     */
    public int getTotalPages() {
        return (totalRecords + size - 1) / size;
    }

    /**
     * 取得首页
     *
     * @return 取得首页
     */
    public int getTopPageNo() {
        return 1;
    }

    public List<E> getList() {
        return list;
    }

    /**
     * 上一页
     *
     * @return 上一页
     */
    public int getPreviousPageNo() {
        if (page <= 1) {
            return 1;
        }
        return page - 1;
    }

    /**
     * 下一页
     *
     * @return 下一页
     */
    public int getNextPageNo() {
        if (page >= getBottomPageNo()) {
            return getBottomPageNo();
        }
        return page + 1;
    }

    /**
     * 取得尾页
     *
     * @return 取得尾页
     */
    public int getBottomPageNo() {
        return getTotalPages();
    }

    public void setList(List<E> list) {
        this.list = list;
    }

    public int getTotalRecords() {
        return totalRecords;
    }

    public void setTotalRecords(int totalRecords) {
        this.totalRecords = totalRecords;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.page = page;
    }

    /**
     * 拿到当前起始条数
     *
     * @return 起始条数
     */
    public int getStartSum() {

        return (page - 1) * size < 0 ? size : (page - 1) * size;
    }

    /**
     * 拿到终止条数
     *
     * @return 拿到终止条数
     */
    public int getEndSum() {
        return size;
    }

}